DigiOffice Gateway Web Services

<back to all web services

ProcessProjectRequestMessage

Requires Authentication

export class Environment
{
    public Title: string;
    public Code: string;

    public constructor(init?: Partial<Environment>) { (Object as any).assign(this, init); }
}

export class Party
{
    public Title: string;
    public Code: string;
    public Version: string;
    public Environment: Environment;

    public constructor(init?: Partial<Party>) { (Object as any).assign(this, init); }
}

export class Header
{
    public MessageID: string;
    public Timestamp: string;
    public Sender: Party;
    public Recipient: Party;
    public RequestMessageID: Object;

    public constructor(init?: Partial<Header>) { (Object as any).assign(this, init); }
}

export class Reference
{
    public GlobalID: string;
    public Title: string;

    public constructor(init?: Partial<Reference>) { (Object as any).assign(this, init); }
}

export class Address
{
    public AddressLine1: string;
    public AddressLine2: string;
    public HouseNumber: string;
    public HouseNumberSuffix: string;
    public PostalCode: string;
    public City: string;
    public Country: Reference;

    public constructor(init?: Partial<Address>) { (Object as any).assign(this, init); }
}

export class MailingAddress
{
    public POBox: string;
    public PostalCode: string;
    public City: string;
    public Country: Reference;

    public constructor(init?: Partial<MailingAddress>) { (Object as any).assign(this, init); }
}

export class Project
{
    public GlobalID: string;
    public CreationDate?: string;
    public CreatedBy: string;
    public ModifiedDate?: string;
    public ModifiedBy: string;
    public Code: string;
    public Name: string;
    public Description1: string;
    public Description2: string;
    public Address: Address;
    public MailingAddress: MailingAddress;
    public ProjectCategoryReference: Reference;
    public ProjectTypeReference: Reference;
    public ProjectStatusReference: Reference;
    public StartDate?: string;
    public EndDate?: string;
    public CompletionDate?: string;
    public Inactive: boolean;
    public Website: string;
    public IsTemplateProject: boolean;
    public CustomFields: CustomField[];

    public constructor(init?: Partial<Project>) { (Object as any).assign(this, init); }
}

export class ProjectResponseMessage
{
    public Header: Header;
    public ProjectReference: Reference;
    public Project: Project;
    public HousingTypes: HousingType[];
    public ConstructionBlocks: ConstructionBlock[];
    public ConstructionNumbers: ConstructionNumber[];
    public Documents: Document[];
    public PurchaseContracts: PurchaseContract[];

    public constructor(init?: Partial<ProjectResponseMessage>) { (Object as any).assign(this, init); }
}

export class ProjectRequestMessage
{
    public Header: Header;
    public ProjectReference: Reference;
    public IncludeHousingTypes: boolean;
    public IncludeConstructionBlocks: boolean;
    public IncludeConstructionNumbers: boolean;
    public IncludeDocuments: boolean;
    public IncludePurchaseContracts: boolean;

    public constructor(init?: Partial<ProjectRequestMessage>) { (Object as any).assign(this, init); }
}

export class ProcessProjectRequestMessage
{
    public InstanceId: string;
    public ProjectRequest: ProjectRequestMessage;

    public constructor(init?: Partial<ProcessProjectRequestMessage>) { (Object as any).assign(this, init); }
}

export class CustomField
{
    public Name: string;
    public Value: string;

    public constructor(init?: Partial<CustomField>) { (Object as any).assign(this, init); }
}

export class HousingType
{
    public GlobalID: string;
    public ProjectReference: Reference;
    public Code: string;
    public Description: string;
    public CustomFields: CustomField[];
    public CreationDate?: string;
    public CreatedBy: string;
    public ModifiedDate?: string;
    public ModifiedBy: string;

    public constructor(init?: Partial<HousingType>) { (Object as any).assign(this, init); }
}

export class ConstructionBlock
{
    public GlobalID: string;
    public ProjectReference: Reference;
    public Code: string;
    public Description: string;
    public CustomFields: CustomField[];
    public CreationDate?: string;
    public CreatedBy: string;
    public ModifiedDate?: string;
    public ModifiedBy: string;

    public constructor(init?: Partial<ConstructionBlock>) { (Object as any).assign(this, init); }
}

export class ConstructionNumber
{
    public GlobalID: string;
    public ProjectReference: Reference;
    public HousingTypeReference: Reference;
    public ConstructionBlockReference: Reference;
    public Code: string;
    public Description: string;
    public Address: Address;
    public RentalHouse: boolean;
    public GuaranteeCertificateNumber: string;
    public Inactive: boolean;
    public CustomFields: CustomField[];
    public CreationDate?: string;
    public CreatedBy: string;
    public ModifiedDate?: string;
    public ModifiedBy: string;
    public ViewingDate?: string;
    public ViewingDateSpecified: boolean;
    public DeliveryDate?: string;
    public DeliveryDateSpecified: boolean;

    public constructor(init?: Partial<ConstructionNumber>) { (Object as any).assign(this, init); }
}

export class Document implements ICustomProperties
{
    public ID: string;
    public RootDocumentID: string;
    public RegistrationprofileID: string;
    public Title: string;
    public FullTitle: string;
    public Number: string;
    public Version: string;
    public ExternalNumber: string;
    public ExternalVersion: string;
    public InternalNumber: string;
    public InternalInvoiceNumber: string;
    public PersonID: number;
    public RelationID: number;
    public RelationTitle: string;
    public ProjectID: number;
    public ProjectTitle: string;
    public Extension: string;
    public Date?: string;
    public CommentsCount: number;
    public HasComments: boolean;
    public HasPreview: boolean;
    public ExtraField: string;
    public IsFavorite: boolean;
    public DocumentcategoryText: string;
    public FileSize?: number;
    public FileDate?: string;
    public Hash: string;
    public HashType: string;
    public FileUrl: string;
    public StandardDocumentUrl: string;
    public IsCorporateIdentity: boolean;
    public UserTitle: string;
    public IsFrozen: boolean;
    public InternalCompanyID: number;
    public DirectUrl: string;
    public AllowDigitalSigningOnlyOnPrimaryVersions: boolean;
    public IsPrimaryVersion: boolean;
    public FileExtension: string;
    public CustomProperties: { [index: string]: Object; };

    public constructor(init?: Partial<Document>) { (Object as any).assign(this, init); }
}

export class Relation
{
    public GlobalID: string;
    public NameLine1: string;
    public NameLine2: string;
    public Address: Address;
    public MailingAddress: MailingAddress;
    public Telephone: string;
    public Mobile: string;
    public Email: string;
    public IBAN: string;
    public BankAccountNumber: string;
    public Website: string;
    public Inactive: boolean;
    public CustomFields: CustomField[];
    public CreationDate?: string;
    public CreatedBy: string;
    public ModifiedDate?: string;
    public ModifiedBy: string;

    public constructor(init?: Partial<Relation>) { (Object as any).assign(this, init); }
}

export class PurchaseContract
{
    public GlobalID: string;
    public Code: string;
    public Description: string;
    public ProjectReference: Reference;
    public ProductCode: string;
    public Relation: Relation;
    public Inactive: boolean;
    public CustomFields: CustomField[];
    public CreationDate?: string;
    public CreatedBy: string;
    public ModifiedDate?: string;
    public ModifiedBy: string;

    public constructor(init?: Partial<PurchaseContract>) { (Object as any).assign(this, init); }
}

TypeScript ProcessProjectRequestMessage DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /jsv/reply/ProcessProjectRequestMessage HTTP/1.1 
Host: kpm_digiofficeapigateway.tbi.nl 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	ProjectRequest: 
	{
		Header: 
		{
			MessageID: String,
			Timestamp: 0001-01-01,
			Sender: 
			{
				Title: String,
				Code: String,
				Version: String,
				Environment: 
				{
					Title: String,
					Code: String
				}
			},
			Recipient: 
			{
				Title: String,
				Code: String,
				Version: String,
				Environment: 
				{
					Title: String,
					Code: String
				}
			},
			RequestMessageID: {}
		},
		ProjectReference: 
		{
			GlobalID: String,
			Title: String
		},
		IncludeHousingTypes: False,
		IncludeConstructionBlocks: False,
		IncludeConstructionNumbers: False,
		IncludeDocuments: False,
		IncludePurchaseContracts: False
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Header: 
	{
		MessageID: String,
		Timestamp: 0001-01-01,
		Sender: 
		{
			Title: String,
			Code: String,
			Version: String,
			Environment: 
			{
				Title: String,
				Code: String
			}
		},
		Recipient: 
		{
			Title: String,
			Code: String,
			Version: String,
			Environment: 
			{
				Title: String,
				Code: String
			}
		},
		RequestMessageID: {}
	},
	ProjectReference: 
	{
		GlobalID: String,
		Title: String
	},
	Project: 
	{
		GlobalID: String,
		CreationDate: 0001-01-01,
		CreatedBy: String,
		ModifiedDate: 0001-01-01,
		ModifiedBy: String,
		Code: String,
		Name: String,
		Description1: String,
		Description2: String,
		Address: 
		{
			AddressLine1: String,
			AddressLine2: String,
			HouseNumber: String,
			HouseNumberSuffix: String,
			PostalCode: String,
			City: String,
			Country: 
			{
				GlobalID: String,
				Title: String
			}
		},
		MailingAddress: 
		{
			POBox: String,
			PostalCode: String,
			City: String,
			Country: 
			{
				GlobalID: String,
				Title: String
			}
		},
		ProjectCategoryReference: 
		{
			GlobalID: String,
			Title: String
		},
		ProjectTypeReference: 
		{
			GlobalID: String,
			Title: String
		},
		ProjectStatusReference: 
		{
			GlobalID: String,
			Title: String
		},
		StartDate: 0001-01-01,
		EndDate: 0001-01-01,
		CompletionDate: 0001-01-01,
		Inactive: False,
		Website: String,
		IsTemplateProject: False,
		CustomFields: 
		[
			{
				Name: String,
				Value: String
			}
		]
	},
	HousingTypes: 
	[
		{
			GlobalID: String,
			ProjectReference: 
			{
				GlobalID: String,
				Title: String
			},
			Code: String,
			Description: String,
			CustomFields: 
			[
				{
					Name: String,
					Value: String
				}
			],
			CreationDate: 0001-01-01,
			CreatedBy: String,
			ModifiedDate: 0001-01-01,
			ModifiedBy: String
		}
	],
	ConstructionBlocks: 
	[
		{
			GlobalID: String,
			ProjectReference: 
			{
				GlobalID: String,
				Title: String
			},
			Code: String,
			Description: String,
			CustomFields: 
			[
				{
					Name: String,
					Value: String
				}
			],
			CreationDate: 0001-01-01,
			CreatedBy: String,
			ModifiedDate: 0001-01-01,
			ModifiedBy: String
		}
	],
	ConstructionNumbers: 
	[
		{
			GlobalID: String,
			ProjectReference: 
			{
				GlobalID: String,
				Title: String
			},
			HousingTypeReference: 
			{
				GlobalID: String,
				Title: String
			},
			ConstructionBlockReference: 
			{
				GlobalID: String,
				Title: String
			},
			Code: String,
			Description: String,
			Address: 
			{
				AddressLine1: String,
				AddressLine2: String,
				HouseNumber: String,
				HouseNumberSuffix: String,
				PostalCode: String,
				City: String,
				Country: 
				{
					GlobalID: String,
					Title: String
				}
			},
			RentalHouse: False,
			GuaranteeCertificateNumber: String,
			Inactive: False,
			CustomFields: 
			[
				{
					Name: String,
					Value: String
				}
			],
			CreationDate: 0001-01-01,
			CreatedBy: String,
			ModifiedDate: 0001-01-01,
			ModifiedBy: String,
			ViewingDate: 0001-01-01,
			ViewingDateSpecified: False,
			DeliveryDate: 0001-01-01,
			DeliveryDateSpecified: False
		}
	],
	Documents: 
	[
		{
			GlobalID: String,
			RootDocumentID: String,
			Code: String,
			Subject: String,
			VersionNumber: String,
			NewestVersion: False,
			RelationReference: 
			{
				GlobalID: String,
				Title: String
			},
			DocumentTypeReference: 
			{
				GlobalID: String,
				Title: String
			},
			ProjectReference: 
			{
				GlobalID: String,
				Title: String
			},
			ConstructionBlockReference: 
			{
				GlobalID: String,
				Title: String
			},
			ConstructionNumberReference: 
			{
				GlobalID: String,
				Title: String
			},
			HousingTypeReference: 
			{
				GlobalID: String,
				Title: String
			},
			Floor: 0,
			FloorSpecified: False,
			DeletedDate: 0001-01-01,
			DeletedDateSpecified: False,
			File: 
			{
				Type: String,
				Name: String,
				Size: 0,
				Content: String,
				ModifiedDate: 0001-01-01
			},
			CustomFields: 
			[
				{
					Name: String,
					Value: String
				}
			],
			CreationDate: 0001-01-01,
			CreatedBy: String,
			ModifiedDate: 0001-01-01,
			ModifiedBy: String
		}
	],
	PurchaseContracts: 
	[
		{
			GlobalID: String,
			Code: String,
			Description: String,
			ProjectReference: 
			{
				GlobalID: String,
				Title: String
			},
			ProductCode: String,
			Relation: 
			{
				GlobalID: String,
				NameLine1: String,
				NameLine2: String,
				Address: 
				{
					AddressLine1: String,
					AddressLine2: String,
					HouseNumber: String,
					HouseNumberSuffix: String,
					PostalCode: String,
					City: String,
					Country: 
					{
						GlobalID: String,
						Title: String
					}
				},
				MailingAddress: 
				{
					POBox: String,
					PostalCode: String,
					City: String,
					Country: 
					{
						GlobalID: String,
						Title: String
					}
				},
				Telephone: String,
				Mobile: String,
				Email: String,
				IBAN: String,
				BankAccountNumber: String,
				Website: String,
				Inactive: False,
				CustomFields: 
				[
					{
						Name: String,
						Value: String
					}
				],
				CreationDate: 0001-01-01,
				CreatedBy: String,
				ModifiedDate: 0001-01-01,
				ModifiedBy: String
			},
			Inactive: False,
			CustomFields: 
			[
				{
					Name: String,
					Value: String
				}
			],
			CreationDate: 0001-01-01,
			CreatedBy: String,
			ModifiedDate: 0001-01-01,
			ModifiedBy: String
		}
	]
}